TOP

Google Tradutor em LibreOffice Calc

Descrição

A funcionalidade padrão do programa LibreOffice Calc não inclui funções para tradução de texto para outros idiomas. No entanto, qualquer usuário pode criar tal função de forma independente.

Neste artigo, veremos a função personalizada GoogleTranslate_YouLibreCalc(), que permitirá traduzir texto diretamente em uma célula de qualquer planilha.

A função usa o site para traduzir o texto "Google Tradutor" e pode ser usado em qualquer fórmula de forma independente ou em conjunto com outras funções padrão.



StarBASIC código para função Google Translate

Adicionar função Google Translate , abra o menu Tools - Macros - Edit Macros... , selecione Módulo1 e copie o seguinte texto no módulo:

Option VBASupport 1

Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
  ' moonexcel.com.ua 
  Dim FCalc      As Object
  Dim WebsiteURL As String  
  Dim XMLHTTP    As Object
  Dim oHTML      As Object
  Dim HTMLDoc    As HTMLDocument
  Dim ObjClass   As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess") 
  TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
  
  SrcLang = LCase(SrcLang)
  TrgLang = LCase(TrgLang)
  
  IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
  IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
  
  IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
  IF TrgLang = "zh-tw" Then TrgLang = "zh-TW" 
    
  WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
    
  ' Executamos a chamada da API para o servidor web usando a solicitação AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Criamos um documento HTML usando o texto de resposta da solicitação AJAX 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Convertemos texto HTML em um modelo de objeto usando a biblioteca de elementos da web Microsoft Biblioteca HTML Object 
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  ' Nós liberamos a memória 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

A seguir, feche Macro Editor e volte para a planilha LibreOffice Calc , selecione qualquer célula e use nosso novo recurso GoogleTranslate_YouLibreCalc() .

Usando a extensão

Você também pode usar a função GOOGLETRANSLATE() instalando a extensão gratuita YouLibreCalc.oxt ou sua versão completa YLC_Utilities.oxt .

Depois disso, esta função estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.

Menu YLC Utilities no LO Calc

Menu YLC Utilities no LO Calc

Menu YLC Utilities no Excel

Menu YLC Utilities no Excel